﻿#include "configpin.h"
#include <QApplication>
#include <QFile>
#include <QDebug>

ConfigPin  * ConfigPin::m_configPin = NULL;
ConfigPin::ConfigPin(QObject *parent) : QObject(parent)
{
    initPin();
}

ConfigPin::~ConfigPin()
{

}

void ConfigPin::initPin()
{
    m_pinMap.clear();
    m_pinRealMap.clear();
    QString docParhFile =  QApplication::applicationDirPath();
    docParhFile +="/configs/configpins.json";

    QFile files(docParhFile);
    if(files.open(QIODevice::ReadOnly)){
        QString inforsa = files.readAll();
        QJsonParseError errors;
        QJsonDocument doc = QJsonDocument::fromJson(inforsa.toUtf8(),&errors);
        if(errors.error == QJsonParseError::NoError){
            QJsonArray arrya = doc.array();
            for(int i = 0 ; i < arrya.size() ;i++ ){
                QJsonObject itema = arrya.at(i).toObject();
                int user_pin = itema.take("user_pin").toInt();
                int real_pin = itema.take("real_pin").toInt();
                m_pinMap.insert(user_pin,real_pin);
                m_pinRealMap.insert(real_pin ,user_pin);
            }
        }
        files.close();
    }
#ifdef DEBUG_INFOR
    qDebug()<<__func__<<__LINE__<<m_pinMap;
#endif
}

ConfigPin *ConfigPin::gestance()
{
    if(m_configPin == NULL){
        m_configPin = new ConfigPin();
    }

    return  m_configPin;
}

int ConfigPin::getRealPin(int userPin)
{
    int realPin = m_pinMap.value(userPin,-1);

    return realPin;
}

int ConfigPin::getUserPin(int realPin)
{

    int userPin = m_pinRealMap.value(realPin,-1);

    return userPin;
}
